package cn.sdormitory.component.bindValue.annotation;


import cn.sdormitory.component.bindValue.bean.info.AnnotationInfo;
import cn.sdormitory.component.bindValue.bean.target.QueryTarget;
import cn.sdormitory.component.bindValue.bean.target.StoreTarget;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface AnnotationValue {
    Class<? extends AnnotationInfo<?>> infoClass();
    Class<? extends Annotation> annotationClass();
    boolean isQueryTarget() default false;
    boolean isStoreTarget() default false;
    QueryTarget queryTarget() default QueryTarget.USER;
    String targetSuffixName();
    StoreTarget storeTarget() default StoreTarget.NONE;
    String key() default "";
    String variableField() default "null";
    ParamField[] paramFields() default {};
    String defaultValue() default "null->Null<-null";
}
